<?php if (!defined("DB_PEREFIX")) exit;

global $db, $template, $SITE, $GLOBAL_USER;

// TODO: Перенести настройки модуля из отдельной таблицы в файл конфигурации
$feedback = $db->fetch_array ($db->query ("SELECT * FROM ".DB_PEREFIX."_feedback"));

if ($feedback['select_admins'] == 'on') 
{
	// Загружаем список администраторов
	// FIXME: перенести в модель
	$get_admins = $db->query ("SELECT user_id, user_name 
		FROM ".DB_PEREFIX."_users 
		WHERE user_group = 'admin' ORDER BY user_id;");
	$admins = '';

	// Построение списка администраторов
	while (list($id, $name) = $db->fetch_row($get_admins)) 
	{
		$admins[$id] = $name;
	}
}


// Создаем массив значений для представления
$data = array( 
				'admins' => $admins,
				'feedback' => $feedback,
				'titles' => explode ("\n", $feedback['titles']),
				'SITE' => $SITE,
				'user_email' => $GLOBAL_USER['user_email']
				);

if (isset($_POST['text'])) 
{
	$id_ = trim (strip_tags ($_POST['mail']));
	$ip = $_SERVER['REMOTE_ADDR'];
	$user_mail = strip_tags ($_POST['user_mail']);
	$title = strip_tags (trim($_POST['title']));
	$text = strip_tags ($_POST['text']);
	$select_title = strip_tags($_POST['select_title']);
	$user_title = strip_tags ($_POST['user_title']);
	
	$error = '';
	
	if ($feedback['select_admins'] == 'on' && $_POST['mail'] != $SITE['site_email']) 
	{
		// Загружаем администратора с таким email
		$get_admin = $db->query ('SELECT user_email 
			FROM '.DB_PEREFIX."_users 
			WHERE user_group = 'admin' && user_id = '$id_'");

		if ($db->num_rows($get_admin) == 1) 
		{
			$admin = $db->fetch_array ($get_admin);
			$mail = $admin['user_email'];
		}
		else 
			$error .= '<li>'._l('err_admin');
	}
	else 
		$mail = $SITE['site_email'];
	
	// Если отсылается не от пользователя а от гостя
	if ($feedback['user_email'] == 'on') 
	{
		if (!eregi("^[a-z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$user_mail) || strlen($user_mail) > 50) 
			$error .= '<li>'._l('err_email');

		$user_name = _l('sender_email').$user_mail;
	}
	else 
	{ 
		$user_name = _l('sender_name').$_POST['user_name']; 
		$user_mail = $SITE['site_email']; 
	}
	
	if ($feedback['titles'] == '') 
	{
		if ($title == '') 
			$error .= '<li>'._l('err_nosubj');
		if (mb_strlen($title) > 60) 
			$error .= '<li>'._l('err_subjlen');
	}
	else 
	{
		if ($select_title == '' && $user_title == '') 
			$error .= '<li>'._l('err_nosubj');

		if (mb_strlen($select_title) > 60 || mb_strlen($user_title) > 60) 
			$error .= '<li>'._l('err_subjlen');
		
		if ($select_title != '') 
			$title = $select_title;
			
		if ($user_title != '') 
			$title = $user_title;
	}
	
	if ($text == '') 
		$error .= '<li>'._l('err_notext');
		
	if (mb_strlen($text) > 1024) 
		$error .= '<li>'._l('err_textlen');

	if ($SITE['bot_protect'] == 'yes' && $_SESSION['secret_code'] != $_POST['code']) 
		$error .= '<li>'._l('err_antibot');

	
	if ($error == '') 
	{
		if (send_mail($mail, $title, mail_body ($text, $user_name, $ip, $title))) 
			site_message (_l('send_ok')); 
		else 
			site_error (_l('send_fail')); 
	}
	else 
	{ 
		site_error ($error); 
	}
}

// Выводим представление 
load_module_view('feedback', 'index', $data);


function mail_body ($text, $user_name, $ip, $title) 
{

	return 'Здраствуйте, уважаемый аминистратор сайта '.$_SERVER['HTTP_HOST'].'!<br /><br />'.
		date(j.'-'.m.'-'.Y.' '.H.':'.i).' вам было отправлено письмо: "'.$title.'".<br /><br />'.$user_name.
		'<br />IP отправителя: '.$ip.
		'<br /><br />Текст письма:<br />'.$text;
}

?>
